<!--
Example of TreeGrid using asynchronous (AJAX) communication with server
Example of server side paging width sorting, uploading and export features
Uses MS Access database Database.mdb and "TableData" as data and XML file SortingExport_Layout.xml as TreeGrid layout
Uses support file SortingExport_Data.aspx as data generating script
Uses support file SortingExport_Upload.aspx as script saving changes to database
Uses support file SortingExport_Page.aspx as source for individual pages
Uses support file SortingExport_Export.aspx as script for generating export
! Check if ASP.NET application has write access to Database.mdb file 
-->
<html>
   <head>
      <script src="../../../Grid/GridE.js"> </script>
      <style>
         /* Examples shared styles */
         .ExampleHeader,.ExampleName,.ExampleShort,.ExampleDesc,.ExampleErr { max-height:999999px; }
         .ExampleHeader { font:normal 12px Arial; color:blue; }
         .ExampleHeader b { color:#800; }
         .ExampleHeader i { font-style:normal; font-weight:bold; color:black; }
         .ExampleHeader u { font-weight:bold; text-decoration:none; padding:0px 2px 0px 2px; color:#0B0; }
         .ExampleName { font:bold 30px Arial; padding:5px 0px 5px 0px; }
         .ExampleShort { font:italic 15px Arial; margin-bottom:10px; padding-top:5px; }
         .ExampleDesc { font:14px/17px Arial; margin:0px 5px 10px 5px; padding:5px; border:1px solid #AAA; }
         .ExampleErr { font:14px/30px Arial; margin:50px auto 10px auto; padding:5px; border:1px solid black; color:red; width:800px; text-align:center; display:none; }
         .ExampleBorder { margin:0px 5px 0px 5px; clear:both; zoom:1; }
         .ExampleDesc ul { padding:0px 0px 0px 15px; margin:10px 0px 0px 0px; }
         .ExampleDesc li { padding-bottom:8px; line-height:18px; }
         .ExampleDesc h4 { font:bold 15px/20px Arial; margin:0px; padding:0px 6px 0px 6px; background:#87DAE5; border:1px solid #888; color:black; display:inline; }
         .ExampleDesc u { font-size:11px; text-decoration:none; }
         .ExampleDesc .Link { text-decoration:underline; color:blue; cursor:pointer; }
         .ExampleMain { height:300px; }
         @media (max-height:800px) { 
            .ExampleDesc { font-size:13px; line-height:15px; margin:0px 5px 5px 5px; padding:3px 5px; } 
            .ExampleDesc br { display:none; }
            .ExampleName { font:20px Arial; padding:0px; }
            .ExampleShort { font-size:13px; }
            }
      </style>
   </head>
   <body>
      <center class="ExampleHeader"><script>document.write(location.href.replace(/(.*)(\/Examples\/|\/ExamplesGantt\/)([^\/]+)\/([^\/]+)\/([^\/]+)$/,"$2<b>$3</b>/<i>$4</i>/$5").replace(/([^<]|^)(\/|\.)/g,"$1<u>$2</u>"));</script></center>
      <center class="ExampleName">Server side save, sorting and export</center>
      <center class="ExampleShort">Server side paging with uploading changes, sorting and export upon SQL database</center>
      <div class="ExampleErr">
         <script> if(location.protocol=="file:") document.write("<style>.ExampleDesc, .ExampleBorder {display:none;} .ExampleErr { display:block; } </style>"); </script>
         Do <b>not</b> run this file locally!<br />Run it from your local or remote web http server where is installed IIS and ASP.NET (1.0, 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, ...).<br>
      </div>
      <div class="ExampleDesc">
         <i>Source files:</i> <h4>SortingExport.html</h4> (this html page), <a href="SortingExport_Layout.xml" target="_blank"><h4>SortingExport_Layout.xml</h4></a> (static XML layout), 
         <a href="SortingExport_Data.aspx" target="_blank"><h4>SortingExport_Data.aspx</h4></a> (server script generates XML list of pages), 
         <a href="SortingExport_Page.aspx" target="_blank"><h4>SortingExport_Page.aspx</h4></a> (server script generates XML for individual page), 
         <a href="SortingExport_Upload.aspx" target="_blank"><h4>SortingExport_Upload.aspx</h4></a> (server script saves XML changes to db), 
         <a href="SortingExport_Export.aspx" target="_blank"><h4>SortingExport_Export.aspx</h4></a> (server script generates XHTML file for Excel), 
         <h4>../Database.db</h4> (source SQL database, table <b>TableData</b>)
      </div>
      <div class="ExampleDesc">
         This example uses <h4>SQLite</h4> <b>../Database.db</b> file as source SQL database.</h4>
         You can switch to <h4>MS Access</h4> <b>MDB database</b> by setting <b>UseMDB</b> property to true in all 4 SortingExport_*.aspx files. <br />
         <u>
            The MS Access MDB database can be used only in <span class="Link" onclick="document.getElementById('32bitIIS').style.display='';this.className='';"><b>32bit</b> mode of IIS</span>. 
            Also the ASP.NET service program must have <b>write</b> access to the Database.mdb file.<br />
            <i id="32bitIIS" style="display:none">
               To permit 32bit application on 64bit IIS, go to IIS manager, display application pools list (usually in root under computer name).
               Choose DefaultAppPool (or the pool you use for the ASP.NET applications the TreeGrid examples are run on), select Advanced configuration and set Permit 32bit application to true.
            </i>
         </u>
      </div>
      <div class="ExampleDesc">
         The pages are downloaded on demand from server (when the page is visible by scrollbars).<br />
         It is simple example with ineffective database access - it loads the whole table for every page and throws the rest away.
         It also simply reloads all body when rows are added or deleted instead of handling changes in pages.
      </div> 
      <div class="ExampleBorder">
         <div class="ExampleMain">
            <bdo Debug='problem'
                 Layout_Url="SortingExport_Layout.xml" Layout_Bonus="<Grid><Cfg Paging='3'/></Grid>"
                 Data_Url="SortingExport_Data.aspx"
                 Upload_Url="SortingExport_Upload.aspx" Upload_Format="Internal" Upload_Data="TGData"
                 Page_Url="SortingExport_Page.aspx" Page_Format="Internal" Page_Data="TGData"
                 Export_Url="SortingExport_Export.aspx" Export_Data="TGData" Export_Param_File="AjaxTablePaging.xls" Export_Type="1"
                 ></bdo>
         </div>
      </div>

      <!-- Google Analytics code run once for trial -->
      <script>
         var TGTrial = document.cookie.match(/TGTrialVB\s*=\s*(\d+)/), TGIndex = 0x80000;
         if(!TGTrial||!(TGTrial[1]&TGIndex)) setTimeout(function(){
            var n = "RunTrialVBSortingExport", d = (new Date((new Date).getTime()+31536000000)).toUTCString(); document.cookie = "TGTrialVB="+((TGTrial?TGTrial[1]:0)|TGIndex)+";expires="+d;
            var u = document.cookie.match(/TGTrialUsed\s*=\s*(\d+)/); u = u ? u[1]-0+1 : 1; if(u<=11) document.cookie = "TGTrialUsed="+u+";path=/;expires="+d;
            var s = "<div style='width:0px;height:0px;overflow:hidden;'><iframe src='http"+(document.location.protocol=="https"?"s":"")+"://www.treegrid.com/Stat/GA.html?productName="
                 +(u==1||u==3||u==5||u==10?"UsedTrial"+u:n)+"' onload='var T=this;setTimeout(function(){document.body.removeChild(T.parentNode.parentNode);},1000);'/></div>";
            var F = document.createElement("div"); F.innerHTML = s; document.body.appendChild(F);
            },100);
      </script>

   </body>
</html>
